package aupdg.data.model;

/**
 * Contract of a generic LDG edge.
 *
 * @author AA and CJ
 */
public interface Edge {

    /**
     * Returns the source node.
     *
     * @return
     */
    public Node getSource();

    /**
     * Returns the target node.
     *
     * @return
     */
    public Node getTarget();

    /**
     * Returns the edge's label.
     *
     * @return
     */
    public String getLabel();

    /**
     * Returns a String representation of the edge.
     *
     * @return
     */
    @Override
    public String toString();

    /**
     * Overrides the equals method.
     *
     * @param obj
     * @return
     */
    @Override
    public boolean equals(Object obj);
}
